package cn.ligoo.dtu.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import ssm.core.domain.BaseDomain;

/**
 * @author Jin,QingHua
 * @version 2012-07-24 12:18:51
 */
public class BmuMasterInfo extends BaseDomain<BmuMasterInfo> implements Serializable {

	private static final long serialVersionUID = -1L;

	/**
	 * 
	 */
	private Integer id;

	/**
	 * 对应DTU_INFO表的ID
	 */
	private Integer dtu_info_id;

	/**
	 * 
	 */
	private Integer modem_id;

	/**
	 * 主机为0x00
	 */
	private Byte sid;

	/**
	 * 此版本为V1.01 0x01
	 */
	private Byte data_version;

	/**
	 * 0.4%/bit 有效值:0~250
	 */
	private BigDecimal soc;

	/**
	 * 电池状态 1/bit bit0: 0:非充电 1:充电 bit1: 0:绝缘正常 1:绝缘过低 bit2: 0:通信正常 1:通信中断 bit3: 0:正常 1:过温 bit4:0:正常 1:过放 bit5: 0:正常
	 * 1:过充 bit6: 0:正常 1:SOC过低 bit7: 0:正常 1:SOC过高 bit8: 0:均衡开启 1:均衡关闭 bit9: 0:正常 1:过流 bit10:正常 1:温差过大
	 * 
	 * 用int表示，要转成二进制
	 */
	private Integer batterys_status;

	/**
	 * 1AH/bit 有效值:0~2000AH
	 */
	private Integer capacity_total;

	/**
	 * 1AH/bit 有效值:0~2000AH
	 */
	private Integer capacity_remain;

	/**
	 * 1V/bit 有效值:0~5000V
	 */
	private Integer voltage_total;

	/**
	 * 0.1A/bit 偏移量:-32000 有效值:-3200~3200A
	 */
	private BigDecimal current_total;

	/**
	 * 1/bit 有效值:0~65535
	 */
	private Integer recharge_cycles;

	/**
	 * 0.1K欧/bit 有效值:0~6553.5欧
	 */
	private BigDecimal resistance_positive;

	/**
	 * 0.1K欧/bit 有效值:0~6553.5欧
	 */
	private BigDecimal resistance_negative;

	/**
	 * 0.1K欧/bit 有效值:0~6553.5欧
	 */
	private BigDecimal resistance_total;

	/**
	 * 1/bit case 0x00:return "<span style='color:green;'>正常</span>";break; case 0x01:return
	 * "<span style='color:red;'>系统漏电</span>";break; case 0x02:return "<span style='color:red;'>绝缘模块离线</span>";break;
	 * case 0x03:return "<span style='color:red;'>绝缘母线异常</span>";break;
	 */
	private Byte resistance_status;

	/**
	 * 0.4%/bit 有效值:0~250
	 */
	private BigDecimal soh;

	/**
	 * 1mv/bit 有效值0~5000mv 如果对应电压值不存在，则以65535（0xFFFF）表示
	 */
	private Integer battery_voltage_high;

	/**
	 * 1mv/bit 有效值0~5000mv 如果对应电压值不存在，则以65535（0xFFFF）表示
	 */
	private Integer battery_voltage_low;

	/**
	 * 1℃/bit 偏移量=-40℃ 有效值：0-165 举例：如果传输的值为20，则实际的温度值为20-40=-20℃ 如果对应温度传感器不存在，则以255（0xFF）表示
	 */
	private Short box_temp_high;

	/**
	 * 1℃/bit 偏移量=-40℃ 有效值：0-165 举例：如果传输的值为20，则实际的温度值为20-40=-20℃ 如果对应温度传感器不存在，则以255（0xFF）表示
	 */
	private Short box_temp_low;

	/**
	 * 有效值0-25
	 */
	private Byte box_no_voltage_high;

	/**
	 * 有效值0-25
	 */
	private Byte searies_no_voltage_high;

	/**
	 * 有效值0-25
	 */
	private Byte box_no_voltage_low;

	/**
	 * 有效值0-25
	 */
	private Byte searies_no_voltage_low;

	/**
	 * 有效值0-25
	 */
	private Byte box_no_temp_high;

	/**
	 * 有效值0-25
	 */
	private Byte searies_no_temp_high;

	/**
	 * 有效值0-25
	 */
	private Byte box_no_temp_low;

	/**
	 * 有效值0-25
	 */
	private Byte searies_no_temp_low;

	/**
	 * 数据产生时间
	 */
	private Date data_create_time;

	public BmuMasterInfo() {

	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Integer getDtu_info_id() {
		return dtu_info_id;
	}

	public void setDtu_info_id(Integer dtu_info_id) {
		this.dtu_info_id = dtu_info_id;
	}

	public Integer getModem_id() {
		return modem_id;
	}

	public void setModem_id(Integer modem_id) {
		this.modem_id = modem_id;
	}

	public Byte getSid() {
		return sid;
	}

	public void setSid(Byte sid) {
		this.sid = sid;
	}

	public Byte getData_version() {
		return data_version;
	}

	public void setData_version(Byte data_version) {
		this.data_version = data_version;
	}

	public BigDecimal getSoc() {
		return soc;
	}

	public void setSoc(BigDecimal soc) {
		this.soc = soc;
	}

	public Integer getBatterys_status() {
		return batterys_status;
	}

	public void setBatterys_status(Integer batterys_status) {
		this.batterys_status = batterys_status;
	}

	public Integer getCapacity_total() {
		return capacity_total;
	}

	public void setCapacity_total(Integer capacity_total) {
		this.capacity_total = capacity_total;
	}

	public Integer getCapacity_remain() {
		return capacity_remain;
	}

	public void setCapacity_remain(Integer capacity_remain) {
		this.capacity_remain = capacity_remain;
	}

	public Integer getVoltage_total() {
		return voltage_total;
	}

	public void setVoltage_total(Integer voltage_total) {
		this.voltage_total = voltage_total;
	}

	public BigDecimal getCurrent_total() {
		return current_total;
	}

	public void setCurrent_total(BigDecimal current_total) {
		this.current_total = current_total;
	}

	public Integer getRecharge_cycles() {
		return recharge_cycles;
	}

	public void setRecharge_cycles(Integer recharge_cycles) {
		this.recharge_cycles = recharge_cycles;
	}

	public BigDecimal getResistance_positive() {
		return resistance_positive;
	}

	public void setResistance_positive(BigDecimal resistance_positive) {
		this.resistance_positive = resistance_positive;
	}

	public BigDecimal getResistance_negative() {
		return resistance_negative;
	}

	public void setResistance_negative(BigDecimal resistance_negative) {
		this.resistance_negative = resistance_negative;
	}

	public BigDecimal getResistance_total() {
		return resistance_total;
	}

	public void setResistance_total(BigDecimal resistance_total) {
		this.resistance_total = resistance_total;
	}

	public Byte getResistance_status() {
		return resistance_status;
	}

	public void setResistance_status(Byte resistance_status) {
		this.resistance_status = resistance_status;
	}

	public BigDecimal getSoh() {
		return soh;
	}

	public void setSoh(BigDecimal soh) {
		this.soh = soh;
	}

	public Integer getBattery_voltage_high() {
		return battery_voltage_high;
	}

	public void setBattery_voltage_high(Integer battery_voltage_high) {
		this.battery_voltage_high = battery_voltage_high;
	}

	public Integer getBattery_voltage_low() {
		return battery_voltage_low;
	}

	public void setBattery_voltage_low(Integer battery_voltage_low) {
		this.battery_voltage_low = battery_voltage_low;
	}

	public Short getBox_temp_high() {
		return box_temp_high;
	}

	public void setBox_temp_high(Short box_temp_high) {
		this.box_temp_high = box_temp_high;
	}

	public Short getBox_temp_low() {
		return box_temp_low;
	}

	public void setBox_temp_low(Short box_temp_low) {
		this.box_temp_low = box_temp_low;
	}

	public Byte getBox_no_voltage_high() {
		return box_no_voltage_high;
	}

	public void setBox_no_voltage_high(Byte box_no_voltage_high) {
		this.box_no_voltage_high = box_no_voltage_high;
	}

	public Byte getSearies_no_voltage_high() {
		return searies_no_voltage_high;
	}

	public void setSearies_no_voltage_high(Byte searies_no_voltage_high) {
		this.searies_no_voltage_high = searies_no_voltage_high;
	}

	public Byte getBox_no_voltage_low() {
		return box_no_voltage_low;
	}

	public void setBox_no_voltage_low(Byte box_no_voltage_low) {
		this.box_no_voltage_low = box_no_voltage_low;
	}

	public Byte getSearies_no_voltage_low() {
		return searies_no_voltage_low;
	}

	public void setSearies_no_voltage_low(Byte searies_no_voltage_low) {
		this.searies_no_voltage_low = searies_no_voltage_low;
	}

	public Byte getBox_no_temp_high() {
		return box_no_temp_high;
	}

	public void setBox_no_temp_high(Byte box_no_temp_high) {
		this.box_no_temp_high = box_no_temp_high;
	}

	public Byte getSearies_no_temp_high() {
		return searies_no_temp_high;
	}

	public void setSearies_no_temp_high(Byte searies_no_temp_high) {
		this.searies_no_temp_high = searies_no_temp_high;
	}

	public Byte getBox_no_temp_low() {
		return box_no_temp_low;
	}

	public void setBox_no_temp_low(Byte box_no_temp_low) {
		this.box_no_temp_low = box_no_temp_low;
	}

	public Byte getSearies_no_temp_low() {
		return searies_no_temp_low;
	}

	public void setSearies_no_temp_low(Byte searies_no_temp_low) {
		this.searies_no_temp_low = searies_no_temp_low;
	}

	public Date getData_create_time() {
		return data_create_time;
	}

	public void setData_create_time(Date data_create_time) {
		this.data_create_time = data_create_time;
	}
}